// /*
//   *   @Author: DeepSeek
//   *   @Contributor: 1296
//   *   @Date: 2025-03-12
//   *   @Description: 加载js
// */

// import { h, render } from 'vue'
// import LoadingComponent from './Loading.vue'
//
// const LoadingPlugin = {
//     install(app, options = {}) {
//         let loadingInstance = null
//         let container = null
//         let requestCount = 0 // 请求计数器
//         let showTimestamp = 0 // 显示时间戳
//
//         // 合并默认配置
//         const finalOptions = {
//             delay: 200,
//             minShowTime: 300,
//             ...options
//         }
//
//         const $loading = {
//             show: (customOptions = {}) => {
//                 requestCount++
//                 if (!loadingInstance) {
//                     showTimestamp = Date.now()
//                     container = document.createElement('div')
//                     loadingInstance = h(LoadingComponent, {
//                         ...finalOptions,
//                         ...customOptions
//                     })
//                     render(loadingInstance, container)
//                     document.body.appendChild(container)
//                 }
//             },
//
//             hide: (immediate = false) => {
//                 if (requestCount > 0) requestCount--
//
//                 if (requestCount === 0) {
//                     const elapsed = Date.now() - showTimestamp
//                     const remaining = Math.max(finalOptions.minShowTime - elapsed, 0)
//
//                     const hideAction = () => {
//                         if (loadingInstance && container) {
//                             if (document.body.contains(container)) {
//                                 document.body.removeChild(container)
//                             }
//                             render(null, container)
//                             loadingInstance = null
//                             container = null
//                         }
//                     }
//
//                     immediate ? hideAction() : setTimeout(hideAction, remaining)
//                 }
//             }
//         }
//
//         // Axios 拦截器优化
//         if (finalOptions.axios) {
//             finalOptions.axios.interceptors.request.use(config => {
//                 $loading.show()
//                 return config
//             })
//
//             finalOptions.axios.interceptors.response.use(
//                 response => {
//                     $loading.hide()
//                     return response
//                 },
//                 error => {
//                     $loading.hide(true) // 错误时立即隐藏
//                     return Promise.reject(error)
//                 }
//             )
//         }
//
//         // 路由集成优化
//         if (finalOptions.router) {
//             finalOptions.router.beforeEach((to, from, next) => {
//                 $loading.show()
//                 next()
//             })
//
//             finalOptions.router.afterEach(() => {
//                 $loading.hide()
//             })
//         }
//
//         app.config.globalProperties.$loading = $loading
//     }
// }
//
// export default LoadingPlugin